↳ Prolog
↳ PrologToPiTRSProof
f_in(.(Head, Tail), Y, RES) → U2(Head, Tail, Y, RES, f_in(Y, Tail, RES))
f_in([], .(Head, Tail), RES) → U1(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
f_in(RES, [], RES) → f_out(RES, [], RES)
U1(Head, Tail, RES, f_out(.(Head, Tail), Tail, RES)) → f_out([], .(Head, Tail), RES)
U2(Head, Tail, Y, RES, f_out(Y, Tail, RES)) → f_out(.(Head, Tail), Y, RES)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
f_in(.(Head, Tail), Y, RES) → U2(Head, Tail, Y, RES, f_in(Y, Tail, RES))
f_in([], .(Head, Tail), RES) → U1(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
f_in(RES, [], RES) → f_out(RES, [], RES)
U1(Head, Tail, RES, f_out(.(Head, Tail), Tail, RES)) → f_out([], .(Head, Tail), RES)
U2(Head, Tail, Y, RES, f_out(Y, Tail, RES)) → f_out(.(Head, Tail), Y, RES)
F_IN(.(Head, Tail), Y, RES) → U21(Head, Tail, Y, RES, f_in(Y, Tail, RES))
F_IN(.(Head, Tail), Y, RES) → F_IN(Y, Tail, RES)
F_IN([], .(Head, Tail), RES) → U11(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
F_IN([], .(Head, Tail), RES) → F_IN(.(Head, Tail), Tail, RES)
f_in(.(Head, Tail), Y, RES) → U2(Head, Tail, Y, RES, f_in(Y, Tail, RES))
f_in([], .(Head, Tail), RES) → U1(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
f_in(RES, [], RES) → f_out(RES, [], RES)
U1(Head, Tail, RES, f_out(.(Head, Tail), Tail, RES)) → f_out([], .(Head, Tail), RES)
U2(Head, Tail, Y, RES, f_out(Y, Tail, RES)) → f_out(.(Head, Tail), Y, RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
F_IN(.(Head, Tail), Y, RES) → U21(Head, Tail, Y, RES, f_in(Y, Tail, RES))
F_IN(.(Head, Tail), Y, RES) → F_IN(Y, Tail, RES)
F_IN([], .(Head, Tail), RES) → U11(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
F_IN([], .(Head, Tail), RES) → F_IN(.(Head, Tail), Tail, RES)
f_in(.(Head, Tail), Y, RES) → U2(Head, Tail, Y, RES, f_in(Y, Tail, RES))
f_in([], .(Head, Tail), RES) → U1(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
f_in(RES, [], RES) → f_out(RES, [], RES)
U1(Head, Tail, RES, f_out(.(Head, Tail), Tail, RES)) → f_out([], .(Head, Tail), RES)
U2(Head, Tail, Y, RES, f_out(Y, Tail, RES)) → f_out(.(Head, Tail), Y, RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
F_IN([], .(Head, Tail), RES) → F_IN(.(Head, Tail), Tail, RES)
F_IN(.(Head, Tail), Y, RES) → F_IN(Y, Tail, RES)
f_in(.(Head, Tail), Y, RES) → U2(Head, Tail, Y, RES, f_in(Y, Tail, RES))
f_in([], .(Head, Tail), RES) → U1(Head, Tail, RES, f_in(.(Head, Tail), Tail, RES))
f_in(RES, [], RES) → f_out(RES, [], RES)
U1(Head, Tail, RES, f_out(.(Head, Tail), Tail, RES)) → f_out([], .(Head, Tail), RES)
U2(Head, Tail, Y, RES, f_out(Y, Tail, RES)) → f_out(.(Head, Tail), Y, RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
F_IN([], .(Head, Tail), RES) → F_IN(.(Head, Tail), Tail, RES)
F_IN(.(Head, Tail), Y, RES) → F_IN(Y, Tail, RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
F_IN(.(Head, Tail), Y) → F_IN(Y, Tail)
F_IN([], .(Head, Tail)) → F_IN(.(Head, Tail), Tail)
From the DPs we obtained the following set of size-change graphs: